package com.example.mytest.annotation4;

import org.springframework.core.annotation.AliasFor;
import org.springframework.test.context.ContextConfiguration;

/**
 * @ClassName: MyTestConfig2
 * @Description:  TODO 注解中的隐性别名
 * @Author: 230689
 * @Date: 2021/9/8 17:47
 * @Version: v1.0
 */
@ContextConfiguration
public @interface MyTestConfig2 {

    @AliasFor(annotation = ContextConfiguration.class, attribute = "locations")
    String[] value() default {};

    @AliasFor(annotation = ContextConfiguration.class, attribute = "locations")
    String[] groovyScripts() default {};

    @AliasFor(annotation = ContextConfiguration.class, attribute = "locations")
    String[] xmlFiles() default {};
}

//如果注解中的一个或多个属性声明为同一个元注解属性的属性重写（直接地或传递地重写）
//        那么这些注解会被当作彼此的隐性别名集来对待
//        结果是它们的行为类似于注解中的显性别名
//        如下所示:@MyTestConfig中,value,groovyScripts和xmlFiles 都是复写了@ContextConfiguration中locations属性的，因此这三个属性是彼此的隐性别名。
